package com.example.sprintboot.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.sprintboot.entity.Order;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Mapper
public interface OrderMapper extends BaseMapper<Order> {
    // 查询某用户的所有订单
    List<Order> selectByUserId(@Param("userId") Integer userId);

    // 根据订单号查询订单
    Order selectByOrderSn(@Param("orderSn") String orderSn);

    // 更新订单状态
    int updateOrderStatus(@Param("orderId") Integer orderId, @Param("status") String status);

    // 更新支付时间
    int updatePayTime(@Param("orderId") Integer orderId, @Param("payTime") LocalDateTime payTime);

    // 物理删除订单
    int deleteOrderByIdAndUser(@Param("orderId") Integer orderId, @Param("userId") Integer userId);
    
    // 卖家相关方法
    List<Order> selectBySellerId(@Param("sellerId") Integer sellerId);
    int selectCountBySellerId(@Param("sellerId") Integer sellerId);
    BigDecimal selectTotalRevenueBySellerId(@Param("sellerId") Integer sellerId);
    int selectPendingOrderCountBySellerId(@Param("sellerId") Integer sellerId);
    
    // 管理员相关方法
    BigDecimal selectTotalRevenue();
} 